package demo1;

import java.util.Arrays;
import java.util.Comparator;

public class Test {
    public static void bubbleSort(Comparator<Student> comparator,Student[] students) {
        for(int i=0;i< students.length-1;i++){
            boolean flg=false;
            for(int j=0;j< students.length-1-i;j++){
                if(comparator.compare(students[j],students[j+1])>0){
                    Student tmp=students[j];
                    students[j]=students[j+1];
                    students[j+1]=tmp;
                    flg=true;
                }
            }
            if(!flg){
                break;
            }
        }
    }
//    public static void bubbleSort(Comparable[] comparables) {
//        for(int i=0;i< comparables.length-1;i++){
//            boolean flg=false;
//            for(int j=0;j< comparables.length-1-i;j++) {
//                if (comparables[j].compareTo(comparables[j + 1]) > 0) {
//                    Comparable tmp = comparables[j];
//                    comparables[j] = comparables[j + 1];
//                    comparables[j + 1] = tmp;
//                    flg = true;
//                }
//            }
//                if(!flg){
//                    break;
//                }
//        }
//    }
    public static void main(String[] args) {
        Student[] students=new Student[3];
        students[0]=new Student("qq",2,90.9);
        students[1]=new Student("ww",3,91.9);
        students[2]=new Student("ee",4,92.9);
//        Arrays.sort(students);//使用这个必须要在Student类中实现Comparable接口，否则就会报错
//        bubbleSort(students);//利用冒泡算法重写了Comparable接口
        AgeComparator ageComparator=new AgeComparator();
        bubbleSort(ageComparator,students);//利用冒泡算法重写年龄比较器
        System.out.println(Arrays.toString(students));

//        Student student1=new Student("qq",2,90.9);
//        Student student2=new Student("ww",3,91.9);
//        AgeComparator ageComparator=new AgeComparator();
//        int ret=ageComparator.compare(student1,student2);
//        if(ret==0){
//            System.out.println("年龄关系:s1=s2");
//        }else if(ret<0){
//            System.out.println("年龄关系:s1<s2");
//
//        }else{
//            System.out.println("年龄关系:s1>s2");
//        }
//        ScoreComparator scoreComparator=new ScoreComparator();
//        ret=scoreComparator.compare(student1,student2);
//        {
//            if(ret==0){
//                System.out.println("分数关系:s1=s2");
//            }else if(ret<0){
//                System.out.println("分数关系:s1<s2");
//
//            }else{
//                System.out.println("分数关系:s1>s2");
//            }
//        }
//        NameComparator nameComparator=new NameComparator();
//        ret=nameComparator.compare(student1,student2);{
//            if(ret==0){
//                System.out.println("名字关系:s1=s2");
//            }else if(ret<0){
//                System.out.println("名字关系:s1<s2");
//
//            }else{
//                System.out.println("名字关系:s1>s2");
//            }
//        }
        }
    }
//    public static void main1(String[] args) {//利用Comparable接口和compareTo方法
//        Student student1=new Student("qq",2,90.9);
//        Student student2=new Student("ww",3,91.9);
//        Student student3=new Student("ee",4,92.9);
//        if(student1.compareTo(student2)>0){
//            System.out.println("年龄关系:s1>s2");
//        }else if(student1.compareTo(student2)<0){
//            System.out.println("年龄关系:s1<s2");
//        }else{
//            System.out.println("年龄关系:s1=s2");
//        }
//    }
//   }

